package oo03;

public class SuperDemo {
    public static void main(String[] args) {
        //构造方法是在其他本类的方法之前执行的,
        // 在new一个对象的时候, 就执行了相对应的构造方法
        Eoo eoo = new Eoo(5);
       // Eoo eoo1 = new Eoo();
        eoo.eooMethod(5,6);
        Foo foo = new Foo();
        foo.fooMethod();

    }
}
class Eoo{
    int e;
    int h;
    Eoo(int a){
        System.out.println("a="+a);
    }
    Eoo(){
        System.out.println("Eoo中无参构造方法");
    }
   void eooMethod(int e,int h){
        this.e=e;
        this.h=h;
       System.out.println("eoo的e,h分别为:"+e+","+h);
    }
}
class Foo extends Eoo{
    int f;
    int e;
    //在构造派生类之前,需要先执行超类的构造方法
   // Foo(){super(5);}
    //super指超类,这里就是Eoo
    Foo(){
        //选择超类哪个构造方法,根据具体情况决定,
        // 但是必须执行某一个超类构造方法
        //super(5);
        super();
        System.out.println("我是Foo的构造方法");
        f=5;
    }
    void fooMethod(){
        //super可以调用父类的成员变量和方法
        super.e=3;//超类的成员变量e
        super.h=4;
        super.eooMethod(5,6);

        e=5;//本类的成员变量e;
        System.out.println("Foo调用Eoo结束,本类的e="+e);
    }
}
